home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / info-service / gopher / Unix / GopherTools / jughead / jughead.ReadMe < prev    next >
Encoding:
Text File  |  1993-05-24  |  13.4 KB  |  309 lines

  1. jughead is copyright 1993, University of Utah Computer Center.
  2. This source may be freely distributed as long as this copyright
  3. notice remains intact, and distribution is in no way used for any
  4. monetary gain, by any institution, business, person, or persons.
  5.  
  6. jughead is a tool for getting menu information from various gopher
  7. servers, and is an acronym for:
  8.     Jonzy's Universal Gopher Hierarchy Excavation And Display
  9.  
  10. jughead was written in ANSI C, developed on both an IBM RS6000, and
  11. a Sun spark-10, and should port easily to any ANSI C conformant
  12. environment.  jughead has been successfuly ported to a Mac running A/UX,
  13. RS6000 running AIX, sun running SunOS 4.1.2, and a DEC running ultrix.
  14.  
  15. It is anticipated this program will be a tool for administrators
  16. in gopherspace.  If you make any changes to the sources, please
  17. send me a copy.
  18.  
  19. Release: version 0.9, released: May 24, 1993.
  20. jughead now supports some special commands, where each special
  21. command must be preceeded by a question mark '?', and are
  22. listed below:
  23.     ?all what
  24.     ?help [what]
  25.     ?limit=n what
  26.     ?version [what]
  27.     ?range=start-stop what
  28. where 'what' is a standard search string, anything enclosed
  29. in square brackets is optional, and all special commands must
  30. be preceeded with '?'.  Each command is described below:
  31.     ?all what    returns all the hits on 'what'.
  32.             Otherwise items are only returned
  33.             if there are less than 1024 items.
  34.     ?help [what]    Gives you the "About.jughead" document
  35.             and any optional hits on 'what'.
  36.     ?limit=n what    Returns the first 'n' items on 'what'.
  37.     ?version [what]    Returns the version of jughead and
  38.             any optional hits on 'what'.
  39.     ?range=start-stop what Returns the 'start' to 'stop'
  40.             range of items on 'what'.
  41. Only 1 special command is supported per query, and if any
  42. syntax error is encountered it is reported as the title to the help
  43. document.  To supports this feature you need to edit JUGHEADHELPDOC
  44. in the Makefile to specify where and what gopher server is serving
  45. the help document.
  46. At the request of doylej@liberty.uc.wlu.edu modified the code
  47. to return a link when there are more than 1024 items found.
  48. The link has the form:
  49.     Name=xxx items found.  Please consolidate your request
  50.     Type=1
  51.     Port=the port number jughead was started under
  52.     Path=?all [the requested search]
  53.     Host=THEHOST as now defined in the Makefile
  54. And a special command of "?" now gets mapped to "?help".
  55. Added support for the "?range=start-stop what" special command.
  56. Revamped the man page.
  57. Tweeked the Makefile by making the default location for jughead
  58. be /usr/local/etc instead /usr/local/bin.  And fixed a problem
  59. of the RS6000 not handling a conditional macro expansion.  Thank
  60. you Utermann@Uni-Augsburg.DE for bringing this to my attention.
  61.  
  62. Release: version 0.8.2a, released: May 23, 1993.
  63. doyle@liberty.uc.wlu.edu reported the Makefile was passing the
  64. null string to the complier for the DEFAULTBOOLOP define.
  65.  
  66. Release: version 0.8.2, released: May 22, 1993.
  67. Added DEFAULTBOOLOP to the Makefile to allow one to alter the default
  68. boolean operation if none is given seperating words to search on.
  69. Thank danj@welchgate.welch.jhu.edu for this one.
  70. Gave support for multiple -x and -X flags.  You can now specify more
  71. than one of each, example:
  72.    jughead -x buckwheat 70 -X "1/A" -X "1/B" -X "ftp:*" gopher.server
  73.  
  74.  
  75. Release: version 0.8.1, released: May 21, 1993.
  76. Had to fix problem with use of the -m flag.  The menus would not
  77. be displayed regardless if the flag was set or not.
  78.  
  79. Release: version 0.8, released: May 20, 1993.
  80. When compiling under A/UX altered the use of sending data to the client
  81. to prevent a core dump.  Thanks hagberg@cumc.cornell.edu for the info.
  82. Completely rewrote the routine that gets the arguments from the command
  83. line.  The order of the arguments is no longer required with the
  84. exception the dataFile or host to connect with must be the last argument.
  85. This means the following is now valid:
  86.   jughead -x site.X 9999 -m site.A -b data site.B site.C site.C
  87. This implies to show the menu as we traverse the gopher tree with the
  88. initial connection to site.C, and follow gopherspace to site.A, site.B,
  89. and site.C, but don't follow anything from site.X out port 9999, while
  90. building the initial database for future use with the -B flag.
  91. Added support for -u username to allow jughead to act as a search engine
  92. with the uid username.  Thank riddle@is.rice.edu for this suggestion.
  93. Fixed a problem of reading the database and tables if they exist in a
  94. location other than jughead itself.  Thank you rzakon@mitre.org for
  95. bringing this to my attention.
  96.  
  97. Release: version 0.7.3, released: May 14, 1993.
  98. doyle@liberty.uc.wlu.edu reported that "a AND b" returned "a" if
  99. "b" did not exist.  I believe things are now working.
  100.  
  101. Release: version 0.7.2, released: May 12, 1993.
  102. doyle@liberty.uc.wlu.edu reported that "a AND b" returned "b" if
  103. "a" did not exist, so I had to fix it.
  104.  
  105. Release: version 0.7.1, released: May 11, 1993.
  106. Fixed a problem where "a AND b AND c" would be evaluated to
  107. "a AND b OR c" if "a AND b" evaluated to nothing.  Altered the way
  108. the information gets logged by logging the port jughead is using, to
  109. support determine which jughead logged the information when using
  110. multiple jugheads are logging to the same file.  The bug and logging
  111. feature was reported and suggested by: doyle@liberty.uc.wlu.edu.
  112.  
  113. Release: version 0.7, released: May 8, 1993.
  114. Fixed a problem that gave incorrect results when boolean searching on
  115. 3 or more words.  Thank you doyle@liberty.uc.wlu.edu for bringing
  116. this to my attention.  Moved jughead out beta state.
  117.  
  118. Release: version 0.6_beta, released: May 7, 1993.
  119. Fixed a bug that would dump core when talking to a PC Gopher
  120. server that was not following gopher protocol.  Added the use
  121. of the -m flag.  This flag will suppress printing of the menus
  122. when not building the dataFile, indexes or running as a server.
  123. This flag will also enable the printing of the menus when building
  124. the dataFile.  Fixed a bug that would not acknowlege an invalid
  125. port for the exceptions hosts, which is the host and port not to
  126. traverse.  Gave support for porting jughead to A/UX, thank you
  127. hagberg@cumc.cornell.edu for bringing this to my attention.  Fixed
  128. a bug that would dump core when attempting to retrieve an empty
  129. directory from a gopher+ server, thank you lindner@boombox.micro.umn.edu
  130. for bringing this to my attention.  Added support for partial word
  131. searches, where the form of partial word searches is "matchPart*", "*"
  132. is invalid, and any characters following the asterik are ignored.  Gave
  133. support for a selector string to not traverse with use of the -X flag.
  134. This flag supports a wildcard and will not traverse any of these items.
  135. Example:
  136.   jughead some.gopher.site -X "ftp:*"
  137. will not traverse any ftp items pointed to by some.gopher.site.
  138. Fixed a bug the would dump core if jughead received more than one
  139. SIGHUP signal before being shutdown.  Did some code cleaning up and
  140. optimization.
  141.  
  142. Release: version 0.5_beta, released: April 9, 1993.
  143. Modified the code to support a secondary hash table.  The table that
  144. gets read into memory is much smaller than previously, while the time
  145. to do the boolean operations and search the tables takes slightly longer,
  146. however, I doubt users will notice the difference.
  147. Note:  This is a major change with the index tables.  When running
  148. jughead with the -B flag, you no longer direct stdout to a file.
  149. What happens now is 2 files automaticlly get created, 1 with a ".ix" and
  150. the other with a ".ih" extention on the file created with the -b option.
  151. Furthermore when invoking jughead as a search engine with the -S flag
  152. you only need to give the name of the database file created with the -b 
  153. flag.
  154.  
  155. Release: version 0.4_beta, released: April 3, 1993.
  156. Added support for the 'a', 'A', and 't' options, which prints the
  157. port, host, number of directories, or port, host, the directories, and
  158. the time required to process a menu or build the index table or
  159. load the index table into memory respectively.
  160. Added the code from Mic Kaczmarczik: mic@bongo.cc.utexas.edu, which
  161. supports an optional -p port flag when running as a search engine.
  162. When using the -b option the datafile now gets sorted to remove all
  163. duplicates, and no longer gets written to datafile.sorted.
  164. The -o and -O flags are now meaningless and may soon disappear.
  165.  
  166. Release: version 0.3.1_beta, released: March 28, 1993.
  167.   Fixed a problem using vsprintf compiled on sun.
  168.  
  169. Release: version 0.3_beta, released: March 28, 1993.
  170.   Modifications include consolidating various #defines into the
  171.   Makefile.  Now keeps track of hosts we can't connect to and will
  172.   not attempt to connect to these hosts again.
  173.   Added support for compilation on a sun.
  174.  
  175. Initial release: version 0.2_beta, released: March 25, 1993.
  176.  
  177. jughead can be acquired via gopher by gophering to gopher.cc.utah.edu
  178. and looking in:
  179.    About U of U Gopher
  180.       Gopher Tools
  181.          jughead
  182.             as jughead.ReadMe and jughead.VERS.tar.Z
  183. or via anonymous ftp from ftp.cc.utah.edu in /pub/gopher/GopherTools
  184. as jughead.ReadMe and jughead.VERS.tar.Z, where ".VERS" is the current version.
  185.  
  186. The file jughead.VERS.tar.Z is a compressed tar file which contains:
  187.     About.jughead
  188.     dirTree.c
  189.     dirTree.h
  190.     getargs.c
  191.     jughead.1
  192.     jughead.c
  193.     jughead.h
  194.     jughead.survey
  195.     Makefile
  196.     searchCmnds.c
  197.     search.c
  198.     sockets.c
  199.     tree.c
  200.     tree.h
  201.     utils.c
  202.     utils.h
  203.  
  204. Create yourself a directory for jughead, which should not be in a
  205. gopher data directory, and download the file jughead.VERS.tar.Z.
  206.  
  207. Once you have downloaded jughead.VERS.tar.Z, where "VERS" is the version
  208. of jughead, the following command will uncompress and untar the files:
  209.     uncompress -c < jughead.VERS.tar.Z | tar xfv -
  210.  
  211. To view the man page, prior to running make install you can:
  212.     make viewman
  213.  
  214. To make the jughead application you should edit the Makefile and verify
  215. the following values are correct:
  216.   THEVERSION      The version of jughead, only edit this if you make changes.
  217.   THEHOST         The fully qualified name of the machine running jughead.
  218.   JUGHEADHELPDOC  The gopher server serving the jughead help document.
  219.   DEFBOOLOP       The default boolean operator if none is given between words.
  220.   THECATCOMMAND   The cat system command, the %s is required.
  221.   THERMCOMMAND    The rm system command, the %s is required.
  222.   THESORTCOMMAND  The sort system command, the %s is required.
  223.   THETMPFILENAME  The location and name of jughead's temporary file.
  224.   THEPORT2USE     The port to use when jughead is a search engine.
  225.   MANSUFF         The suffix of the man page and where to install the manpage.
  226.   DESTDIR         The location of the jughead executable.  You may not want
  227.           this to be publicly accessible.
  228.   DESTMAN         The location of the jughead man page.
  229.   PERMISSIONS     The permissions for the jughead executable.
  230.   VARARGS      Commented out if you have <stdarg.h>.
  231.   VSPRINTTYPE      The type vsprintf() returns.
  232.   PROTOTYPES      Uncommented if you want to use prototypes.
  233.   POSIXSOURCE     Needed when compiling under A/UX.
  234.   NOWARNINGS      Uncommented if you don't want to see any compiler warnings.
  235.   OPTIMIZATION      Any optimization flags you want to have.
  236.   CC              The C compiler to use.
  237.   LINT            The lint program to use if need me.
  238.   LINTFLAGS       Any lint flags you want to set.
  239.  
  240.  
  241. You will want to place the "About.jughead" document on your somewhere
  242. on your gopher server, and then give the proper definition of JUGHEADHELPDOC
  243. in the Makefile.  You may want to copy the file "About.jughead" in the same directory as the jughead link, so the users will have knowlege how to search
  244. the tables built by jughead.
  245.  
  246. Create a link file somewhere in your gopher data directory.  Mine looks like:
  247.   Name=Search all UofU menus using jughead
  248.   Numb=4
  249.   Type=7
  250.   Port=3000
  251.   Path=
  252.   Host=gopher.cc.utah.edu
  253.  
  254. Now do a "make", "make all", or "make install" to compile jughead.  If
  255. you get any compilation errors please inform me of the problem.
  256.  
  257. The steps I did to get jughead running as a server follow:
  258.  jughead -tb data -X "ftp:*" .utah.edu gopher.cc.utah.edu
  259.  jughead -tB data
  260.  jughead -tS -l data.log data &
  261.  
  262. jughead is not inetd compatible.
  263.  
  264. There exists a mailing list for discussion about jughead called:
  265. jughead-news@lists.utah.edu    To get on this mailing list send
  266. mail to: jughead-news-request@lists.utah.edu
  267.  
  268. Things still to do:
  269.   1)    Move the Makefile macro THEHOST and JUGHEADHELPDOC to a
  270.     .rc or .conf file or something like that.
  271.  
  272.   2)    Add support for the following special commands:
  273.         ?pathway selectorString
  274.             returns the gopher pathway of
  275.             'selectorString'.
  276.         ?type t
  277.             returns only items of type 't'.
  278.     Allow an optional [=n] to return the first 'n' items.
  279.  
  280.   3)    Make jughead inetd compatible.
  281.  
  282.   4)    Use the Path field in the link file to specify which database
  283.     to use, load the database into memory, do the search, and
  284.     release the memory.  Maybe have this as an option.
  285.     How about initialy start up with no tables cached in memory,
  286.     when we receive a query read the appropriate table into memory
  287.     if there is none, and only release the memory if a new query
  288.     refers to an alternate database?
  289.  
  290.   5)    Add the ability to query other jugheads.
  291.  
  292.   6)    Consolidate the tree.c and dirTree.c files.
  293.  
  294.   7)    Either reenable or remove support for the -o and -O flags?
  295.  
  296.   8)    Use vfork() instead of fork() when acting as a search engine
  297.     to eliminate, as much as possible, any memory duplication.
  298.  
  299.   9)    Implement a no feed back flag which will give no feed back when
  300.     building the hash tables, which will make the creation of the
  301.     hash tables speed up by approximately 20 percent.
  302.  
  303.  10)    Implement the use of a synonym table.
  304.  
  305.  
  306. Please email source changes, complaints, or suggestions to:
  307.     Rhett "Jonzy" Jones
  308.     jonzy@cc.utah.edu
  309.